package com.yunji.storage.dao.impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yunji.common.base.BaseDaoImpl;
import com.yunji.common.utils.bean.BeanUtils;
import com.yunji.storage.bo.AllocateInfoListQueryBO;
import com.yunji.storage.dao.IAllocateInfoDao;
import com.yunji.storage.domain.AllocateInfoDO;
import com.yunji.storage.mapper.AllocateInfoMapper;
import org.springframework.stereotype.Repository;

import java.util.Arrays;
import java.util.List;

@Repository
public class AllocateInfoDaoImpl extends BaseDaoImpl<AllocateInfoMapper, AllocateInfoDO> implements IAllocateInfoDao {
    @Override
    public List<AllocateInfoDO> search(AllocateInfoListQueryBO bo) {
        return list(new LambdaQueryWrapper<AllocateInfoDO>()
                .eq(BeanUtils.isNotNull(bo.getAllocateId()), AllocateInfoDO::getAllocateId, bo.getAllocateId())
                .eq(BeanUtils.isNotNull(bo.getInfoId()), AllocateInfoDO::getInfoId, bo.getInfoId())
                .eq(BeanUtils.isNotNull(bo.getAllocateCode()), AllocateInfoDO::getAllocateCode, bo.getAllocateCode()));
    }

    @Override
    public boolean deleteByAllocateIds(Long... allocateIds) {
        return remove(new LambdaQueryWrapper<AllocateInfoDO>()
                .in(AllocateInfoDO::getAllocateId, Arrays.asList(allocateIds)));
    }
}
